#include "adc.h"
#include "STC8G_H_ADC.h"
#include "STC8G_H_GPIO.h"
#include "STC8G_H_NVIC.h"

//ADC端口采集到的 数值 * 0.3186f = 当前电压值

sbit ADC = P1 ^ 0;
u16 ADC_DATA[10];

u8 adc_dath;
u8 adc_datl;
u8 adc_cont;

//adcrec = adcrec * 0.3186f;  //ADC端口采集到的 数值 * 0.3186f = 当前电压值
void ADC_GET(void)
{  
    int16 adcrec;
    adcrec = Get_ADCResult(0)* 0.1513f;
    adc_dath = adcrec/10;
    adc_datl = adcrec%10;
    if(adcrec > 100)   adc_cont = 1;
    else               adc_cont = 0;
    sprintf(ADC_DATA, "%bd.%bd", adc_dath,adc_datl);
    printf("adc_data = %d\r\n",adcrec);
}

void ADC_Init(void)
{
    ADC_InitTypeDef ADC_InitStructure; // 结构定义
    GPIO_InitTypeDef GPIO_InitStructure;

	GPIO_InitStructure.Pin = GPIO_Pin_0;
	GPIO_InitStructure.Mode = GPIO_HighZ;  // 选错了不能用的
	GPIO_Inilize(GPIO_P1, &GPIO_InitStructure);
    
    ADC_InitStructure.ADC_SMPduty = 31;                    // ADC 模拟信号采样时间控制, 0~31（注意： SMPDUTY 一定不能设置小于 10）
    ADC_InitStructure.ADC_CsSetup = 0;                     // ADC 通道选择时间控制 0(默认),1
    ADC_InitStructure.ADC_CsHold = 1;                      // ADC 通道选择保持时间控制 0,1(默认),2,3
    ADC_InitStructure.ADC_Speed = ADC_SPEED_2X16T;         // 设置 ADC 工作时钟频率	ADC_SPEED_2X1T~ADC_SPEED_2X16T
    ADC_InitStructure.ADC_AdjResult = ADC_RIGHT_JUSTIFIED; // ADC结果调整,	ADC_LEFT_JUSTIFIED,ADC_RIGHT_JUSTIFIED
    ADC_Inilize(&ADC_InitStructure);                       // 初始化
    ADC_PowerControl(ENABLE);                              // ADC电源开关, ENABLE或DISABLE
    NVIC_ADC_Init(DISABLE, Priority_0);                    // 中断使能, ENABLE/DISABLE; 优先级(低到高) Priority_0,Priority_1,Priority_2,Priority_3
}


 